package org.moonlight.jvm.instructions.base;

import org.moonlight.jvm.rtda.exclusive.Frame;

/**
 * 指令接口
 *
 *
 * @author Moonlight
 * @createTime 2023/8/16 13:38
 **/
public interface Instruction {

    /**
     * 从字节码中提取操作数
     *
     * @param reader 字节码读取器
     * @createTime 13:39 2023/8/16
     * @author moonlight
     **/
    void fetchOperands(BytecodeReader reader);

    /**
     * 执行指令
     *
     * @param frame 虚拟机栈栈帧
     * @createTime 13:41 2023/8/16
     * @author moonlight
     **/
    void execute(Frame frame);

}
